package com.ply.flashsalessystem.service.activityService;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ply.flashsalessystem.entity.pojo.Activity;
import com.ply.flashsalessystem.entity.vo.activity.ActivityVo;
import com.ply.flashsalessystem.entity.vo.manage.GoodsVO;
import com.ply.flashsalessystem.entity.wrapper.activity.ActivityWrapper;
import com.ply.flashsalessystem.mapper.ActivityMapper;
import com.ply.flashsalessystem.service.activityService.ActivityService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author XiaoPan
 * @since 2022-05-10
 */
@Service
public class ActivityServiceImpl extends ServiceImpl<ActivityMapper, Activity> implements ActivityService {
    @Autowired
    ActivityMapper activityMapper;

    /**
     * 新增活动
     */
    @Override
    public int addActivity(Activity activity) {
        //todo 一些逻辑判断  可以不可以新增  哪些参数少了 参数错了
        return activityMapper.addActivity(activity);
    }

    /**
     * 为活动 分配 商品  使用foreach 循环
     */
    @Override
    public int addGoodInActivity(Integer activityId, List<Integer> goodId) {
        //todo 一些逻辑判断  activityId  goodId 合理吗
        return activityMapper.addGoodInActivity(activityId,goodId);
    }

    /**
     * 动态更新 活动的信息 (活动 进行中 没法修改修改) id需要正确
     */
    @Override
    public int updateActivityById(Activity activity) {
        //todo 一些逻辑判断  activityId 正确吗  先查询 在更新
        return activityMapper.updateActivityById(activity);
    }

    /**
     * 动态分页查询活动 条件   活动id 商品id 活动名称 活动tag 时间 管理员 开启是否 按照时间排序
     */
    @Override
    public List<ActivityVo> queryActivityByWrapper(Page<ActivityVo> page, ActivityWrapper activityWrapper) {
        return activityMapper.queryActivityByWrapper(page,activityWrapper);
    }

    /**
     * 根据 活动满减id 条件查询出 所有参与的商品
     */
    @Override
    public List<GoodsVO> queryGoodsByFullId(Page<ActivityVo> page, Integer activityId) {
        return activityMapper.queryGoodsByFullId(page,activityId);
    }
    /**
     * 根据 goodId 查询 所有活动
     */
    @Override
    public List<Activity> queryByGoodsId(Integer goodsId) {
        return activityMapper.queryByGoodsId(goodsId);
    }

    /**
     * 判断活动是否有效 参数 完整的 活动
     */
    @Override
    public boolean pdActivity(Activity activity) {
        return false;
    }


    /**
     * 通过 活动id 查询  活动
     */
    @Override
    public Activity queryById(Integer activityId) {
        return activityMapper.queryById(activityId);
    }


}
